
 1000  *SAVE S.INIT BUFFERS (802)
 1010         .OP 65816
 1020  *--------------------------------
 1030  *   REPLACEMENT FOR DOS 3.3 CODE
 1040  *      (SAVES 46 BYTES, NO CHANGE IN FUNCTION)
 1050  *--------------------------------
 1060  HIMEM             .EQ $4C,4D
 1070  FP.STRINGS        .EQ $6F,70
 1080  FP.HIMEM          .EQ $73,74
 1090  PP                .EQ $CA,CB
 1100  *--------------------------------
 1110  BUF.START         .EQ $9D00
 1120  NO.FILES          .EQ $AA57
 1130  ACTIVE.BASIC.FLAG .EQ $AAB6
 1140  *--------------------------------
 1150         .OR $A7D4
 1160         .TA $08D4
 1170  *--------------------------------
 1180  INIT.FILE.BUFFERS
 1190         PHP               SAVE CURRENT STATUS AND
 1200         CLC               TURN ON 802 MODE
 1210         XCE
 1220         PHP
 1230  *--------------------------------
 1240         LDX NO.FILES      DO (NO.FILES) TIMES
 1250         REP #$30          16-BIT OPERATIONS
 1260         LDY BUF.START     POINT TO FIRST BUFFER
 1270  *--------------------------------
 1280  .1     LDA ##0           STORE ZERO OVER 1ST & 2ND CHARS 
 1290         STA 0,Y           OF FILENAME TO FREE BUFFER
 1300  *---FILL IN 3 PNTRS--------------
 1310         SEC               COMPUTE LOW BYTE OF POINTERS
 1320         TYA               FROM FILENAME ADDR
 1330         SBC ##$2D
 1340         STA $1E,Y         ...FMW ADDR
 1350         SBC ##$100
 1360         STA $20,Y         ...TSL ADDR
 1370         SBC ##$100
 1380         STA $22,Y         ...DATA ADDR
 1390  *---IS THAT THE LAST BUFFER?-----
 1400         DEX
 1410         BEQ .2       ...NO MORE BUFFERS
 1420  *---BUILD LINK TO NEXT BUFFER----
 1430         SBC ##$26    ADDR OF FILENAME IN NEXT BUFFER
 1440         STA $24,Y
 1450         TAY          BASE ADDRESS FOR NEXT BUFFER
 1460         BRA .1            ...ALWAYS
 1470  *---SET FORWARD PNTR = 0000------
 1480  .2     TAX          SAVE HIMEM VALUE
 1490         LDA ##0
 1500         STA $24,Y
 1510  *---SET HIMEM AND EMPTY BLOCK----
 1520         LDA ACTIVE.BASIC.FLAG
 1530         AND ##$FF
 1540         BEQ .3            INTEGER BASIC
 1550         STX FP.HIMEM      APPLESOFT
 1560         STX FP.STRINGS
 1570         BRA .4
 1580  .3     STX HIMEM         INTEGER BASIC
 1590         STX PP
 1600  .4     PLP
 1610         XCE
 1620         PLP
 1630         RTS
 1640  *--------------------------------

